import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;


class F{
    public int a;
    public String name;

    public F(int a, String name) {
        this.a = a;
        this.name = name;
    }
    public F() {

    }
}

public class Test extends F{
//    public static void main(String[] args) {
//        if(args.length<1){
//            System.out.println("请输入数字");
//            return;
//        }
//        int num = Integer.parseInt(args[0]);
//        System.out.println(num);
//    }

//    public static void main3(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        while (true) {
//            try {
//                System.out.println("Please choose a role: 1. Administrator 2. User");
//                int role = scanner.nextInt();
//                if (role == 1) {
//                    // code for administrator goes here
//                } else if (role == 2) {
//                    // code for user goes here
//                } else {
//                    throw new Exception("Invalid role!");
//                }
//                break;
//            } catch (Exception ex) {
//                System.out.println("Error: " + ex.getMessage());
//                System.out.println("Please try again.");
//            }
//        }
//
//    }






//    public static void test() {
//        Scanner scanner = new Scanner(System.in);
//        int n=scanner.nextInt();
//        int[] array={1,2,3};
//        if(n<0 || n>2) {
//            throw  new ArrayIndexOutOfBoundsException("坐标越界了");
//        } else {
//            System.out.println(array[n]);
//        }
//    }
//    private static void test() {
//        int[] array1={1,2,3};
//        System.out.println(array1[10]);
//    }
//    public static void main(String[] args){
//        try {
//            test();
//            System.out.println("异常产生后这里的代码不在执行");
//        } catch (ArrayIndexOutOfBoundsException e) {
//            e.printStackTrace(); // 打印信息最全面
//            System.out.println("捕获到异常：ArrayIndexOutOfBoundsException.处理异常……");
//        } catch (Exception e){
//
//        }
//        System.out.println("这是一行正常代码");
//    }


//    public static void foo() {
//        FileReader reader = null;
//        try {
//            reader = new FileReader("somefile.txt");
//            // 使用reader读取文件内容
//        } catch (FileNotFoundException ex) {
//            System.out.println("未找到文件：somefile.txt");
//        } catch (IOException ex) {
//            // 处理IOException异常的代码...
//        } finally {
//            if (reader != null) {
//                try {
//                    //关闭FileReader对象
//                    reader.close();
//                } catch (IOException ex) {
//                    // 处理关闭reader时抛出的IOException异常的代码
//                }
//            }
//        }
//    }
//
//    public static void main(String[] args) {
//        foo();
//    }





//    public static int func() {
//        try {
//            return 10;
//        } finally {
//            return 20;
//        }
//    }
//public static int test(){
//    int num = 0;
//    try{
//        return num;
//    }finally{
//        num = 10;
//    }
//}
//    public void tester() {
//        try {
//            test();
//        }  catch (CloneNotSupportedException e) {
//            e.printStackTrace();
//        }
//
//    }
//    public void test() throws CloneNotSupportedException {
//        super.clone();
//    }


    public static void main1() throws CloneNotSupportedException{
        //运行时异常：非受查异常
        System.out.println(10/0);
        int[] array=null;
        System.out.println(array.length);
        int[] array2={1,2,3};
        System.out.println(array2[10]);

        //编译时异常：受查异常。如clone时

    }
    //抛出的异常是一个类
    //抛出异常并且你没有处理异常的时候，后面的语句不能执行
    //编译时异常-受查异常，运行时异常-非受查异常

    //如何抛出异常？
    //1.代码自己执行的过程当中触发异常
    //2.自己手动抛出异常：throw new NullPointerException();//最上面的行数指定了最直接抛出异常的位置，也是我们需要解决的，解决这个异常之后，下面的异常就没有问题了
    //    （一般用在自己自定义的异常）

    //如果抛出的是受查异常，需要处理一：在方法后声明异常，保证编译正常，运行时还会触发异常
    //如果没有解决这个异常，我们会把这个异常交给JVM处理，一旦交给JVM程序就崩溃了。



}

